//luogu P3391 【模板】文艺平衡树 
#include<cstdio>
const int MAXN=200000+10;
struct FHQ_Treap{
	int l,r,key,val,size;
	bool tg;
	FHQ_Treap(int _l=0,int _r=0,int _key=0,int _val=0,int _size=0,bool _tg=false)
	{
		l=_l;
		r=_r;
		key=_key;
		val=_val;
		size=_size;
		tg=_tg;
		return;
	}
};
FHQ_Treap tree[MAXN];
int root,cnt;
inline int rnd()
{
	static int x=131;
	return x*=48271;
}
inline int newnode(int val)
{
	tree[++cnt]=FHQ_Treap(0,0,rnd(),val,1,false);
	return cnt;
}
inline void update(int nw)
{
	tree[nw].size=tree[tree[nw].l].size+tree[tree[nw].r].size+1;
	return;
}
template <typename T>
inline void swap(T &x,T &y)
{
	T t=x;
	x=y;
	y=t;
	return;
}
inline void push_down(int nw)
{
	swap(tree[nw].l,tree[nw].r);
	tree[tree[nw].l].tg^=1;
	tree[tree[nw].r].tg^=1;
	tree[nw].tg=false;
	return;
}
inline void split(int nw,int size,int &x,int &y)
{
	if(!nw)
	{
		x=y=0;
		return;
	}
	else
	{
		if(tree[nw].tg)
			push_down(nw);
		if(tree[tree[nw].l].size<size)
		{
			x=nw;
			split(tree[nw].r,size-tree[tree[nw].l].size-1,tree[nw].r,y);
		}
		else
		{
			y=nw;
			split(tree[nw].l,size,x,tree[nw].l);
		}
		update(nw);
		return;
	}
}
inline int merge(int x,int y)
{
	if(!x||!y)
		return x|y;
	else
	{
		if(tree[x].key>tree[y].key)
		{
			if(tree[x].tg)
				push_down(x);
			tree[x].r=merge(tree[x].r,y);
			update(x);
			return x;
		}
		else
		{
			if(tree[y].tg)
				push_down(y);
			tree[y].l=merge(x,tree[y].l);
			update(y);
			return y;
		}
	}
}
inline void reverse(int l,int r)
{
	int x,y,z;
	split(root,l-1,x,y);
	split(y,r-l+1,y,z);
	tree[y].tg^=1;
	root=merge(merge(x,y),z);
	return;
}
inline void ldr(int nw)
{
	if(!nw)
		return;
	if(tree[nw].tg)
		push_down(nw);
	ldr(tree[nw].l);
	printf("%d ",tree[nw].val);
	ldr(tree[nw].r);
	return;
}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		root=merge(root,newnode(i));
	while(m--)
	{
		int l,r;
		scanf("%d%d",&l,&r);
		reverse(l,r);
	}
	ldr(root);
	return 0;
}